<?xml version="1.0" encoding="UTF-8"?>
<model modelUID="r:9a43aa0e-d663-4c35-9454-141df43e81fb(de.compago.mps.playground.accessories)">
  <persistence version="4" />
  <refactoringHistory />
  <language namespace="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" />
  <language namespace="b401a680-8325-4110-8fd3-84331ff25bef(jetbrains.mps.lang.generator)" />
  <language namespace="0eddeefa-c2d6-4437-bc2c-de50fd4ce470(jetbrains.mps.lang.script)" />
  <language namespace="83888646-71ce-4f1c-9c53-c54016f6ad4f(jetbrains.mps.baseLanguage.collections)" />
  <language namespace="7a5dda62-9140-4668-ab76-d5ed1746f2b2(jetbrains.mps.lang.typesystem)" />
  <language namespace="d4615e3b-d671-4ba9-af01-2b78369b0ba7(jetbrains.mps.lang.pattern)" />
  <language namespace="fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590283(jetbrains.mps.lang.core.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" />
  <languageAspect modelUID="r:0d7c3701-33ef-47ea-82ab-49aaa5735637(de.compago.mps.playground.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902e8(jetbrains.mps.lang.generator.structure)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902e2(jetbrains.mps.lang.generator.constraints)" version="16" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902f3(jetbrains.mps.lang.generator.generationContext.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902c1(jetbrains.mps.baseLanguage.constraints)" version="83" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902db(jetbrains.mps.baseLanguage.blTypes.constraints)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959028c(jetbrains.mps.lang.structure.constraints)" version="11" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ba(jetbrains.mps.lang.sharedConcepts.constraints)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902bc(jetbrains.mps.lang.sharedConcepts.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902fb(jetbrains.mps.lang.smodel.constraints)" version="21" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590338(jetbrains.mps.baseLanguage.closures.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590334(jetbrains.mps.baseLanguage.closures.constraints)" version="2" />
  <devkit namespace="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
  <maxImportIndex value="6" />
  <import index="2" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="3" />
  <import index="3" modelUID="f:java_stub#java.util(java.util@java_stub)" version="-1" />
  <import index="4" modelUID="r:4f6f8ed5-c3d7-49f4-b0dd-d70029feffdf(jetbrains.mps.baseLanguage.extensionMethods.structure)" version="0" />
  <import index="5" modelUID="r:e985db5c-6ba2-43f6-94fe-1b4547c2cc5c(jetbrains.mps.baseLanguage.search)" version="-1" />
  <import index="6" modelUID="f:java_stub#jetbrains.mps.util(jetbrains.mps.util@java_stub)" version="-1" />
  <visible index="2" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
  <visible index="3" modelUID="f:java_stub#java.lang(java.lang@java_stub)" />
  <node type="jetbrains.mps.baseLanguage.structure.ClassConcept:3" id="9162224485038825033">
    <property name="name:3" value="MapUtilities" />
    <node role="staticMethod:3" type="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration:3" id="9162224485038825041">
      <property name="name:3" value="isToCustomStringApplicable" />
      <node role="returnType:3" type="jetbrains.mps.baseLanguage.structure.BooleanType:3" id="9162224485038825045" />
      <node role="visibility:3" type="jetbrains.mps.baseLanguage.structure.PublicVisibility:3" id="9162224485038825043" />
      <node role="body:3" type="jetbrains.mps.baseLanguage.structure.StatementList:3" id="9162224485038825044">
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement:3" id="9162224485038825048">
          <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.AndExpression:3" id="9162224485038825049">
            <node role="leftExpression:3" type="jetbrains.mps.baseLanguage.structure.AndExpression:3" id="9162224485038825050">
              <node role="leftExpression:3" type="jetbrains.mps.baseLanguage.structure.AndExpression:3" id="9162224485038825051">
                <node role="leftExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825052">
                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825053">
                    <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825054">
                      <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038825088">
                        <link role="variableDeclaration:3" targetNodeId="9162224485038825046" resolveInfo="callOperation" />
                      </node>
                      <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkAccess:16" id="9162224485038825056">
                        <link role="link:16" targetNodeId="2.1202948736718:3" />
                      </node>
                    </node>
                    <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess:16" id="9162224485038825057">
                      <link role="property:16" targetNodeId="2v.1169194664001:0" resolveInfo="name" />
                    </node>
                  </node>
                  <node role="operation:3" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation:3" id="9162224485038825058">
                    <link role="baseMethodDeclaration:3" targetNodeId="3v.~String.equals(java.lang.Object):boolean" resolveInfo="equals" />
                    <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.StringLiteral:3" id="9162224485038825059">
                      <property name="value:3" value="toString" />
                    </node>
                  </node>
                </node>
                <node role="rightExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825060">
                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825061">
                    <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825062">
                      <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038825089">
                        <link role="variableDeclaration:3" targetNodeId="9162224485038825046" resolveInfo="callOperation" />
                      </node>
                      <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkAccess:16" id="9162224485038825064">
                        <link role="link:16" targetNodeId="2.1202948736718:3" />
                      </node>
                    </node>
                    <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkListAccess:16" id="9162224485038825065">
                      <link role="link:16" targetNodeId="2.1068580123134:3" />
                    </node>
                  </node>
                  <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" id="9162224485038825066" />
                </node>
              </node>
              <node role="rightExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825067">
                <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825068">
                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038825090">
                    <link role="variableDeclaration:3" targetNodeId="9162224485038825046" resolveInfo="callOperation" />
                  </node>
                  <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation:16" id="9162224485038825070">
                    <node role="parameter:16" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept:16" id="9162224485038825071">
                      <node role="conceptArgument:16" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference:16" id="9162224485038825072">
                        <link role="conceptDeclaration:16" targetNodeId="2.1068390468198:3" resolveInfo="ClassConcept" />
                      </node>
                    </node>
                  </node>
                </node>
                <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation:16" id="9162224485038825073" />
              </node>
            </node>
            <node role="rightExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825074">
              <node role="operand:3" type="jetbrains.mps.lang.typesystem.structure.CoerceExpression" id="9162224485038825075">
                <node role="pattern" type="jetbrains.mps.lang.typesystem.structure.PatternCondition" id="9162224485038825076">
                  <property name="name" value="some" />
                  <node role="pattern" type="jetbrains.mps.lang.pattern.structure.PatternExpression" id="9162224485038825077">
                    <node role="patternNode" type="jetbrains.mps.baseLanguage.structure.ClassifierType:3" id="9162224485038825092">
                      <link role="classifier:3" targetNodeId="3.~Map" resolveInfo="Map" />
                    </node>
                  </node>
                </node>
                <node role="nodeToCoerce" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825079">
                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825080">
                    <node role="operand:3" type="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression:16" id="9162224485038825081">
                      <link role="concept:16" targetNodeId="2.1197027756228:3" resolveInfo="DotExpression" />
                      <node role="leftExpression:16" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038825082">
                        <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038825091">
                          <link role="variableDeclaration:3" targetNodeId="9162224485038825046" resolveInfo="callOperation" />
                        </node>
                        <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation:16" id="9162224485038825084" />
                      </node>
                    </node>
                    <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkAccess:16" id="9162224485038825085">
                      <link role="link:16" targetNodeId="2.1197027771414:3" />
                    </node>
                  </node>
                  <node role="operation:3" type="jetbrains.mps.lang.typesystem.structure.Node_TypeOperation" id="9162224485038825086" />
                </node>
              </node>
              <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation:16" id="9162224485038825087" />
            </node>
          </node>
        </node>
      </node>
      <node role="parameter:3" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration:3" id="9162224485038825046">
        <property name="name:3" value="callOperation" />
        <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038825047">
          <link role="concept:16" targetNodeId="2.1202948039474:3" resolveInfo="InstanceMethodCallOperation" />
        </node>
      </node>
    </node>
    <node role="staticMethod:3" type="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration:3" id="9162224485038840563">
      <property name="name:3" value="isToStringApplicable" />
      <node role="returnType:3" type="jetbrains.mps.baseLanguage.structure.BooleanType:3" id="9162224485038840567" />
      <node role="visibility:3" type="jetbrains.mps.baseLanguage.structure.PublicVisibility:3" id="9162224485038840565" />
      <node role="body:3" type="jetbrains.mps.baseLanguage.structure.StatementList:3" id="9162224485038840566">
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement:3" id="9162224485038840570">
          <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.AndExpression:3" id="9162224485038840571">
            <node role="leftExpression:3" type="jetbrains.mps.baseLanguage.structure.AndExpression:3" id="9162224485038840572">
              <node role="leftExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840573">
                <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840574">
                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840575">
                    <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840595">
                      <link role="variableDeclaration:3" targetNodeId="9162224485038840568" resolveInfo="callOperation" />
                    </node>
                    <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkAccess:16" id="9162224485038840577">
                      <link role="link:16" targetNodeId="4.1550313277221324860:0" />
                    </node>
                  </node>
                  <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess:16" id="9162224485038840578">
                    <link role="property:16" targetNodeId="2v.1169194664001:0" resolveInfo="name" />
                  </node>
                </node>
                <node role="operation:3" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation:3" id="9162224485038840579">
                  <link role="baseMethodDeclaration:3" targetNodeId="3v.~String.equals(java.lang.Object):boolean" resolveInfo="equals" />
                  <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.StringLiteral:3" id="9162224485038840580">
                    <property name="value:3" value="toCustomString" />
                  </node>
                </node>
              </node>
              <node role="rightExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840581">
                <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840582">
                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840583">
                    <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840596">
                      <link role="variableDeclaration:3" targetNodeId="9162224485038840568" resolveInfo="callOperation" />
                    </node>
                    <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkAccess:16" id="9162224485038840585">
                      <link role="link:16" targetNodeId="4.1550313277221324860:0" />
                    </node>
                  </node>
                  <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkListAccess:16" id="9162224485038840586">
                    <link role="link:16" targetNodeId="2.1068580123134:3" />
                  </node>
                </node>
                <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" id="9162224485038840587" />
              </node>
            </node>
            <node role="rightExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840588">
              <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840589">
                <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840597">
                  <link role="variableDeclaration:3" targetNodeId="9162224485038840568" resolveInfo="callOperation" />
                </node>
                <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation:16" id="9162224485038840591">
                  <node role="parameter:16" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept:16" id="9162224485038840592">
                    <node role="conceptArgument:16" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference:16" id="9162224485038840593">
                      <link role="conceptDeclaration:16" targetNodeId="2.1068390468198:3" resolveInfo="ClassConcept" />
                    </node>
                  </node>
                </node>
              </node>
              <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation:16" id="9162224485038840594" />
            </node>
          </node>
        </node>
      </node>
      <node role="parameter:3" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration:3" id="9162224485038840568">
        <property name="name:3" value="callOperation" />
        <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840569">
          <link role="concept:16" targetNodeId="4.1550313277221324859:0" resolveInfo="ExtensionMethodCall" />
        </node>
      </node>
    </node>
    <node role="staticMethod:3" type="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration:3" id="9162224485038840782">
      <property name="name:3" value="performToCustomString" />
      <node role="returnType:3" type="jetbrains.mps.baseLanguage.structure.VoidType:3" id="9162224485038840783" />
      <node role="visibility:3" type="jetbrains.mps.baseLanguage.structure.PublicVisibility:3" id="9162224485038840784" />
      <node role="body:3" type="jetbrains.mps.baseLanguage.structure.StatementList:3" id="9162224485038840785">
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement:3" id="9162224485038840786">
          <node role="localVariableDeclaration:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration:3" id="9162224485038840787">
            <property name="name:3" value="newCall" />
            <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840788">
              <link role="concept:16" targetNodeId="4.1550313277221324859:0" resolveInfo="ExtensionMethodCall" />
            </node>
            <node role="initializer:3" type="jetbrains.mps.baseLanguage.structure.GenericNewExpression:3" id="9162224485038840789">
              <node role="creator:3" type="jetbrains.mps.lang.smodel.structure.SNodeCreator:16" id="9162224485038840790">
                <node role="createdType:16" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840791">
                  <link role="concept:16" targetNodeId="4.1550313277221324859:0" resolveInfo="ExtensionMethodCall" />
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement:3" id="9162224485038840792">
          <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.AssignmentExpression:3" id="9162224485038840793">
            <node role="lValue:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840794">
              <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840795">
                <link role="variableDeclaration:3" targetNodeId="9162224485038840787" resolveInfo="newCall" />
              </node>
              <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkAccess:16" id="9162224485038840796">
                <link role="link:16" targetNodeId="4.1550313277221324860:0" />
              </node>
            </node>
            <node role="rValue:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840797">
              <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840798">
                <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840799">
                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840800">
                    <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840801">
                      <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840802">
                        <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840803">
                          <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840804">
                            <link role="variableDeclaration:3" targetNodeId="9162224485038840839" resolveInfo="callOperation" />
                          </node>
                          <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation:16" id="9162224485038840805" />
                        </node>
                        <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Model_RootsOperation:16" id="9162224485038840806">
                          <link role="concept:16" targetNodeId="4.1894531970723270160:0" resolveInfo="TypeExtension" />
                        </node>
                      </node>
                      <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" id="9162224485038840807">
                        <node role="closure" type="jetbrains.mps.baseLanguage.closures.structure.ClosureLiteral:3" id="9162224485038840808">
                          <node role="body:3" type="jetbrains.mps.baseLanguage.structure.StatementList:3" id="9162224485038840809">
                            <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement:3" id="9162224485038840810">
                              <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840811">
                                <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840812">
                                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840813">
                                    <link role="variableDeclaration:3" targetNodeId="9162224485038840817" resolveInfo="it" />
                                  </node>
                                  <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess:16" id="9162224485038840814">
                                    <link role="property:16" targetNodeId="2v.1169194664001:0" resolveInfo="name" />
                                  </node>
                                </node>
                                <node role="operation:3" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation:3" id="9162224485038840815">
                                  <link role="baseMethodDeclaration:3" targetNodeId="3v.~String.equals(java.lang.Object):boolean" resolveInfo="equals" />
                                  <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.StringLiteral:3" id="9162224485038840816">
                                    <property name="value:3" value="MapUtilityFunctions" />
                                  </node>
                                </node>
                              </node>
                            </node>
                          </node>
                          <node role="parameter:3" type="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" id="9162224485038840817">
                            <property name="name" value="it" />
                            <node role="type" type="jetbrains.mps.baseLanguage.structure.WildCardType:3" id="9162224485038840818" />
                          </node>
                        </node>
                      </node>
                    </node>
                    <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.GetFirstOperation" id="9162224485038840819" />
                  </node>
                  <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkListAccess:16" id="9162224485038840820">
                    <link role="link:16" targetNodeId="4.8022092943110829339:0" />
                  </node>
                </node>
                <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" id="9162224485038840821">
                  <node role="closure" type="jetbrains.mps.baseLanguage.closures.structure.ClosureLiteral:3" id="9162224485038840822">
                    <node role="body:3" type="jetbrains.mps.baseLanguage.structure.StatementList:3" id="9162224485038840823">
                      <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement:3" id="9162224485038840824">
                        <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840825">
                          <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840826">
                            <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840827">
                              <link role="variableDeclaration:3" targetNodeId="9162224485038840831" resolveInfo="it" />
                            </node>
                            <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess:16" id="9162224485038840828">
                              <link role="property:16" targetNodeId="2v.1169194664001:0" resolveInfo="name" />
                            </node>
                          </node>
                          <node role="operation:3" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation:3" id="9162224485038840829">
                            <link role="baseMethodDeclaration:3" targetNodeId="3v.~String.equals(java.lang.Object):boolean" resolveInfo="equals" />
                            <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.StringLiteral:3" id="9162224485038840830">
                              <property name="value:3" value="toCustomString" />
                            </node>
                          </node>
                        </node>
                      </node>
                    </node>
                    <node role="parameter:3" type="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" id="9162224485038840831">
                      <property name="name" value="it" />
                      <node role="type" type="jetbrains.mps.baseLanguage.structure.WildCardType:3" id="9162224485038840832" />
                    </node>
                  </node>
                </node>
              </node>
              <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.GetFirstOperation" id="9162224485038840833" />
            </node>
          </node>
        </node>
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement:3" id="9162224485038840834">
          <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840835">
            <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840836">
              <link role="variableDeclaration:3" targetNodeId="9162224485038840839" resolveInfo="callOperation" />
            </node>
            <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_ReplaceWithAnotherOperation:16" id="9162224485038840837">
              <node role="replacementNode:16" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840838">
                <link role="variableDeclaration:3" targetNodeId="9162224485038840787" resolveInfo="newCall" />
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="parameter:3" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration:3" id="9162224485038840839">
        <property name="name:3" value="callOperation" />
        <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840840">
          <link role="concept:16" targetNodeId="2.1202948039474:3" resolveInfo="InstanceMethodCallOperation" />
        </node>
      </node>
    </node>
    <node role="staticMethod:3" type="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration:3" id="9162224485038840841">
      <property name="name:3" value="performToString" />
      <node role="returnType:3" type="jetbrains.mps.baseLanguage.structure.VoidType:3" id="9162224485038840842" />
      <node role="visibility:3" type="jetbrains.mps.baseLanguage.structure.PublicVisibility:3" id="9162224485038840843" />
      <node role="body:3" type="jetbrains.mps.baseLanguage.structure.StatementList:3" id="9162224485038840844">
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement:3" id="9162224485038840856">
          <node role="localVariableDeclaration:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration:3" id="9162224485038840857">
            <property name="name:3" value="ct" />
            <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840858">
              <link role="concept:16" targetNodeId="2.1107535904670:3" resolveInfo="ClassifierType" />
            </node>
            <node role="initializer:3" type="jetbrains.mps.baseLanguage.structure.GenericNewExpression:3" id="9162224485038840859">
              <node role="creator:3" type="jetbrains.mps.lang.smodel.structure.SNodeCreator:16" id="9162224485038840860">
                <node role="createdType:16" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840861">
                  <link role="concept:16" targetNodeId="2.1107535904670:3" resolveInfo="ClassifierType" />
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement:3" id="9162224485038840862">
          <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.AssignmentExpression:3" id="9162224485038840863">
            <node role="lValue:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840864">
              <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840865">
                <link role="variableDeclaration:3" targetNodeId="9162224485038840857" resolveInfo="ct" />
              </node>
              <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkAccess:16" id="9162224485038840866">
                <link role="link:16" targetNodeId="2.1107535924139:3" />
              </node>
            </node>
            <node role="rValue:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840867">
              <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840938">
                <link role="variableDeclaration:3" targetNodeId="9162224485038840845" resolveInfo="callOperation" />
              </node>
              <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation:16" id="9162224485038840869">
                <node role="parameter:16" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept:16" id="9162224485038840870">
                  <node role="conceptArgument:16" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference:16" id="9162224485038840871">
                    <link role="conceptDeclaration:16" targetNodeId="2.1068390468198:3" resolveInfo="ClassConcept" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement:3" id="9162224485038840872">
          <node role="localVariableDeclaration:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration:3" id="9162224485038840873">
            <property name="name:3" value="scope" />
            <node role="type:3" type="jetbrains.mps.baseLanguage.structure.ClassifierType:3" id="9162224485038840937">
              <link role="classifier:3" targetNodeId="5.3161373106581143187" resolveInfo="ClassifierVisibleMembersScope" />
            </node>
            <node role="initializer:3" type="jetbrains.mps.baseLanguage.structure.GenericNewExpression:3" id="9162224485038840875">
              <node role="creator:3" type="jetbrains.mps.baseLanguage.structure.ClassCreator:3" id="9162224485038840876">
                <link role="baseMethodDeclaration:3" targetNodeId="5.3573019447813594739" resolveInfo="ClassifierVisibleMembersScope" />
                <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840877">
                  <link role="variableDeclaration:3" targetNodeId="9162224485038840857" resolveInfo="ct" />
                </node>
                <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840939">
                  <link role="variableDeclaration:3" targetNodeId="9162224485038840845" resolveInfo="callOperation" />
                </node>
                <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.StaticFieldReference:3" id="9162224485038840879">
                  <link role="classifier:3" targetNodeId="5.3161373106581141431" resolveInfo="IClassifiersSearchScope" />
                  <link role="variableDeclaration:3" targetNodeId="5.3161373106581141458" resolveInfo="INSTANCE_METHOD" />
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement:3" id="9162224485038840880">
          <node role="localVariableDeclaration:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration:3" id="9162224485038840881">
            <property name="name:3" value="methods" />
            <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeListType:16" id="9162224485038840882" />
            <node role="initializer:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840883">
              <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840884">
                <link role="variableDeclaration:3" targetNodeId="9162224485038840873" resolveInfo="scope" />
              </node>
              <node role="operation:3" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation:3" id="9162224485038840885">
                <link role="baseMethodDeclaration:3" targetNodeId="5.3161373106581143238" resolveInfo="getNodes" />
                <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.GenericNewExpression:3" id="9162224485038840886">
                  <node role="creator:3" type="jetbrains.mps.baseLanguage.structure.AnonymousClassCreator:3" id="9162224485038840887">
                    <node role="cls:3" type="jetbrains.mps.baseLanguage.structure.AnonymousClass:3" id="9162224485038840888">
                      <property name="nonStatic:3" value="true" />
                      <link role="classifier:3" targetNodeId="6.~Condition" resolveInfo="Condition" />
                      <link role="baseMethodDeclaration:3" targetNodeId="3v.~Object.&lt;init&gt;()" resolveInfo="Object" />
                      <node role="visibility:3" type="jetbrains.mps.baseLanguage.structure.PublicVisibility:3" id="9162224485038840889" />
                      <node role="method:3" type="jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration:3" id="9162224485038840890">
                        <property name="isAbstract:3" value="false" />
                        <property name="name:3" value="met" />
                        <node role="visibility:3" type="jetbrains.mps.baseLanguage.structure.PublicVisibility:3" id="9162224485038840891" />
                        <node role="returnType:3" type="jetbrains.mps.baseLanguage.structure.BooleanType:3" id="9162224485038840892" />
                        <node role="parameter:3" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration:3" id="9162224485038840893">
                          <property name="name:3" value="p0" />
                          <node role="type:3" type="jetbrains.mps.baseLanguage.structure.ClassifierType:3" id="9162224485038840894">
                            <link role="classifier:3" targetNodeId="3v.~Object" resolveInfo="Object" />
                          </node>
                        </node>
                        <node role="body:3" type="jetbrains.mps.baseLanguage.structure.StatementList:3" id="9162224485038840895">
                          <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement:3" id="9162224485038840896">
                            <node role="localVariableDeclaration:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration:3" id="9162224485038840897">
                              <property name="name:3" value="method" />
                              <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840898">
                                <link role="concept:16" targetNodeId="2.1068580123165:3" resolveInfo="InstanceMethodDeclaration" />
                              </node>
                              <node role="initializer:3" type="jetbrains.mps.baseLanguage.structure.CastExpression:3" id="9162224485038840899">
                                <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840900">
                                  <link role="concept:16" targetNodeId="2.1068580123165:3" resolveInfo="InstanceMethodDeclaration" />
                                </node>
                                <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840901">
                                  <link role="variableDeclaration:3" targetNodeId="9162224485038840893" resolveInfo="p0" />
                                </node>
                              </node>
                            </node>
                          </node>
                          <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.IfStatement:3" id="9162224485038840902">
                            <node role="ifTrue:3" type="jetbrains.mps.baseLanguage.structure.StatementList:3" id="9162224485038840903">
                              <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ReturnStatement:3" id="9162224485038840904">
                                <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.BooleanConstant:3" id="9162224485038840905">
                                  <property name="value:3" value="true" />
                                </node>
                              </node>
                            </node>
                            <node role="condition:3" type="jetbrains.mps.baseLanguage.structure.AndExpression:3" id="9162224485038840906">
                              <node role="rightExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840907">
                                <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840908">
                                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840909">
                                    <link role="variableDeclaration:3" targetNodeId="9162224485038840897" resolveInfo="method" />
                                  </node>
                                  <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SLinkListAccess:16" id="9162224485038840910">
                                    <link role="link:16" targetNodeId="2.1068580123134:3" />
                                  </node>
                                </node>
                                <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" id="9162224485038840911" />
                              </node>
                              <node role="leftExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840912">
                                <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840913">
                                  <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840914">
                                    <link role="variableDeclaration:3" targetNodeId="9162224485038840897" resolveInfo="method" />
                                  </node>
                                  <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess:16" id="9162224485038840915">
                                    <link role="property:16" targetNodeId="2v.1169194664001:0" resolveInfo="name" />
                                  </node>
                                </node>
                                <node role="operation:3" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation:3" id="9162224485038840916">
                                  <link role="baseMethodDeclaration:3" targetNodeId="3v.~String.equals(java.lang.Object):boolean" resolveInfo="equals" />
                                  <node role="actualArgument:3" type="jetbrains.mps.baseLanguage.structure.StringLiteral:3" id="9162224485038840917">
                                    <property name="value:3" value="toString" />
                                  </node>
                                </node>
                              </node>
                            </node>
                          </node>
                          <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ReturnStatement:3" id="9162224485038840918">
                            <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.BooleanConstant:3" id="9162224485038840919">
                              <property name="value:3" value="false" />
                            </node>
                          </node>
                        </node>
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.AssertStatement:3" id="9162224485038840920">
          <node role="condition:3" type="jetbrains.mps.baseLanguage.structure.EqualsExpression:3" id="9162224485038840921">
            <node role="rightExpression:3" type="jetbrains.mps.baseLanguage.structure.IntegerConstant:3" id="9162224485038840922">
              <property name="value:3" value="1" />
            </node>
            <node role="leftExpression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840923">
              <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840924">
                <link role="variableDeclaration:3" targetNodeId="9162224485038840881" resolveInfo="methods" />
              </node>
              <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.GetSizeOperation" id="9162224485038840925" />
            </node>
          </node>
          <node role="message:3" type="jetbrains.mps.baseLanguage.structure.StringLiteral:3" id="9162224485038840926">
            <property name="value:3" value="There must be exactly one method 'toString' and without parameters in each Java-Type!" />
          </node>
        </node>
        <node role="statement:3" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement:3" id="9162224485038840927">
          <node role="expression:3" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840928">
            <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.ParameterReference:3" id="9162224485038840940">
              <link role="variableDeclaration:3" targetNodeId="9162224485038840845" resolveInfo="callOperation" />
            </node>
            <node role="operation:3" type="jetbrains.mps.lang.smodel.structure.Node_ReplaceWithAnotherOperation:16" id="9162224485038840930">
              <node role="replacementNode:16" type="jetbrains.mps.lang.quotation.structure.Quotation" id="9162224485038840931">
                <node role="quotedNode" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation:3" id="9162224485038840932">
                  <node role="referenceAntiquotation$link_attribute$baseMethodDeclaration:3" type="jetbrains.mps.lang.quotation.structure.ReferenceAntiquotation" id="9162224485038840933">
                    <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression:3" id="9162224485038840934">
                      <node role="operand:3" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference:3" id="9162224485038840935">
                        <link role="variableDeclaration:3" targetNodeId="9162224485038840881" resolveInfo="methods" />
                      </node>
                      <node role="operation:3" type="jetbrains.mps.baseLanguage.collections.structure.GetFirstOperation" id="9162224485038840936" />
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="parameter:3" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration:3" id="9162224485038840845">
        <property name="name:3" value="callOperation" />
        <node role="type:3" type="jetbrains.mps.lang.smodel.structure.SNodeType:16" id="9162224485038840846">
          <link role="concept:16" targetNodeId="4.1550313277221324859:0" resolveInfo="ExtensionMethodCall" />
        </node>
      </node>
    </node>
    <node role="visibility:3" type="jetbrains.mps.baseLanguage.structure.PublicVisibility:3" id="9162224485038825034" />
  </node>
</model>

